package com.cos.dao;

import com.cos.entity.Emp;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
  * @author: zxc
  * @return:
  * @time:  2021/5/12 16:35
  * @description:
  */
public interface EmpMapper {

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 16:36
      * @description: 查寻所有
      */
    List<Emp> getAll();

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 20:31
      * @description: 计算有多少数据
      */
    Long getCount();

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 20:41
      * @description: 使用主键获取对象数据
      */
    Emp getEmpByEno(Integer eno);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 20:42
      * @description: 使用主键即员工们获取对象数据
      */
    Emp getEmpByEnoAndEname(@Param("eno") Integer eno, @Param("ename") String ename);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 20:42
      * @description: 使用map保存主键即员工们获取对象数据
      */
    Emp getEmpByMap(Map<String,Object> map);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/12 20:42
      * @description: 对象参数
      */
    Emp getEmp(Emp emp);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 10:10
      * @description: 模糊查询 使用员工名进行
      */
    List<Emp> getEmpByKey(@Param("ename") String ename);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 11:22
      * @description: 使用主键删除数据
      */
    int delEmp(@Param("eno") Integer eno);

   /**
     * @author: zxc
     * @return:
     * @time:  2021/5/13 11:23
     * @description: 新增
     */
    int addEmp(Emp emp);

  /**
    * @author: zxc
    * @return:
    * @time:  2021/5/13 11:23
    * @description: 修改
    */
    int  updateEmp(Emp emp);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:07
      * @description: 动态sql查询
      */
    List<Emp> findEmpByKey(Emp emp);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:07
      * @description: 动态sql查询2
      */
    List<Emp> findEmpByKey2(Map<String,Object> maps);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:08
      * @description: 动态修改
      */
    int updateEmpByKey(Emp emp);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:08
      * @description: 动态sql查询2
      */
    List<Emp> findEmpByKey3(Map<String,Object> maps);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:08
      * @description: 批量处理 ==>新增
      */
    void addEmps(List<Emp> empList);

    /**
      * @author: zxc
      * @return:
      * @time:  2021/5/13 21:09
      * @description: 批量删除
      */
    void delAllByEno(List<Integer> enos);
}
